package com.bls.lib.mvp.presenter;

import com.bls.lib.mvp.model.MvpOkGoImpl;
import com.bls.lib.mvp.view.MvpView;
import com.lzy.okgo.callback.StringCallback;
import com.lzy.okgo.model.HttpParams;
import com.lzy.okgo.model.Response;
import com.lzy.okgo.request.base.Request;


/**
 * 　　  () 　　　  ()
 * 　　  ( ) 　　　( )
 * 　　  ( ) 　　　( )
 * 　　┏┛┻━━━┛┻┓
 * 　　┃　　　━　　　┃
 * 　　┃　┳┛　┗┳　┃
 * 　　┃　　　┻　　　┃
 * 　　┗━┓　　　┏━┛
 * 　　　　┃　　　┃
 * 　　　　┃　　　┗━━━┓
 * 　　　　┃　　　　　　　┣┓
 * 　　　　┃　　　　　　　┏┛
 * 　　　　┗┓┓┏━┳┓┏┛
 * 　　　　　┃┫┫　┃┫┫
 * 　　　　　┗┻┛　┗┻┛
 * ——————————————————
 * Created by BinglingSu on 2017/8/23.
 */

public class BasePresenter {

    private MvpView view;

    public BasePresenter(MvpView view) {
        this.view = view;
    }

    public void onDestroy() {
     //   view = null;
    }

    /**
     * 请求网络数据
     *
     * @param url        url
     * @param httpParams 参数
     * @param cacheType  缓存类型
     */
   public void requestNetData(String url, HttpParams httpParams, int cacheType, final int requestId) {
        MvpOkGoImpl.getInstance().getStringData(url, httpParams, cacheType, new StringCallback() {

            @Override
            public void onStart(Request<String, ? extends Request> request) {
                super.onStart(request);
            }

            @Override
            public void onSuccess(Response<String> response) {
                view.showOnSuccess(response,requestId);
            }


            @Override
            public void onCacheSuccess(Response<String> response) {
                view.showOnCacheSuccess(response,requestId);
            }

            @Override
            public void onError(Response<String> response) {
                super.onError(response);
                view.showOnError(response, requestId);
            }

            @Override
            public void onFinish() {
                view.showOnFinish(requestId);
            }
        });
    }
}
